/*
 * Moviment.h
 *
 *  Created on: 11/01/2011
 *      Author: Nenem
 */

#ifndef MOVIMENT_H_
#define MOVIMENT_H_

#include "Controller.h"
#include "Collision.h"
#include "Position.h"
#include "Scenery.h"

class Movement {
private:
	bool walking;
	bool running;
	bool stoped;

	int moveX;
	int moveY;

	int speed;
	int runSpeed;

	int currentSpeed;
	int dMove;
	//owner
	int owner;
public:
	Movement();
	Movement(int speed, int runSpeed);
	virtual ~Movement();

	void set(Controller *controller);
	void move(int delta, Collision *collision, Position *position, Direction *direction, Scenery *scenery);
	void clear();
	void update(int delta, Controller *controller, Collision *collision, Position *position, Direction *direction, Scenery *scenery);

    int getMoveX() const
    {
        return moveX;
    }

    int getMoveY() const
    {
        return moveY;
    }

    void setMoveX(int moveX)
    {
        this->moveX = moveX;
    }

    bool getRunning() const
    {
        return running;
    }

    bool getStoped() const
    {
        return stoped;
    }

    bool getWalking() const
    {
        return walking;
    }

    void setRunning(bool runing)
    {
        this->running = runing;
    }

    void setStoped(bool stoped)
    {
        this->stoped = stoped;
    }

    void setWalking(bool walking)
    {
        this->walking = walking;
    }

    int getOwner() const
    {
        return owner;
    }

    void setOwner(int owner)
    {
        this->owner = owner;
    }
};

#endif /* MOVIMENT_H_ */
